$.fn.extend({
    customAutoComplete : function customAutoComplete(campo_id, url) {
        var campo_id_valor = campo_id.val();
        function preenche() {
            var tmp = '';
            $.ajax({
                url : url,
                type : 'get',
                data : {
                    'query' : campo_id.val(),
                    'confirmar' : 'true'
                },
                dataType : 'json',
                async : false,
                success : function(ret) {
                    if(ret)
                        tmp = ret.suggestions[0];
                }
            });
            return tmp;
        }
        $(this).val(preenche());
        var opcoes = this.autocomplete({
            serviceUrl : url,
            noCache : true,
            onSelect : function(value, data) {
                campo_id.val(data);
            }
        });
        this.keypress(function(e) {
            if (e.which > 0 && e.which != 13) {
                campo_id.val('');
            }
        });
        this.blur(function() {
            if ($(this).val() == '')
                    campo_id.val('');
            else
                if (campo_id.val() == '' && opcoes.data[0] > 0) {
                    campo_id.val(opcoes.data[0]);
                    $(this).val(preenche());
                }
                else
                    if (campo_id.val() == '')
                        $(this).val('');
        });
    }
})